Product
Sheet 02 · updated Sep 18, 2026
Everything between the request and the fix.
The home page shows one trace. This is the rest of it: the search that finds the event, the alert that wakes the right person, and the release that closes the issue.
See what it costsSearch
Ask the question you actually have
Every event carries the release, the route, the user and whatever else your code attached. Search reads all of it, so “is this only Safari on 4.18.1?” takes one line instead of an afternoon.
- Your tags are first-class
- Anything you set in the SDK is a filter the moment it arrives — plan tier, shard, feature flag.
- Saved searches belong to the project
- So “the ones that wake us up” means the same thing to everyone on the rotation.
- The chips write the query
- Click to filter and the syntax appears in the bar, which is the fastest way anyone learns it.
Search
checkout-api · production
release:4.18.* route:/checkout is:unresolved
| Issue | Events |
|---|---|
| PaymentTimeoutException app/Billing/Charge.php:88 · POST /checkout | 612 |
| CardDeclinedException app/Billing/Charge.php:214 · POST /checkout | 148 |
| TypeError: undefined is not an object checkout.js:41 · Safari 17.6 | 74 |
| QueryException: deadlock detected app/Orders/Reserve.php:63 · queue:orders | 31 |
saved as “the ones that wake us up” · shared with the project
Alerts
Page a person, not a channel
A rule watches a rate, a regression or a performance budget — never the mere existence of an error — and routes to whoever owns the file it happened in.
- Ownership, not rotation
- CODEOWNERS and the suspect commit decide who is paged. The schedule is the fallback.
- Escalation with a timer on it
- Ten minutes without an acknowledgement moves it on, so nobody assumes somebody else is looking.
- Everything else waits
- One morning digest, on your time zone, holding the issues that did not earn a page.
Alert rule
checkout — regressions only
- When
- more than 50 events in 5 minutes or an issue marked resolved comes back or p95 on the route is over budget for 15 minutes
- Then
- page whoever owns the file, in #oncall
- If nobody acknowledges
- 10 min → the second on-call 20 min → the engineering lead
Everything else waits for the morning digest, 9:00 AM PT.
Releases
Every deploy leaves a mark
Send us a release and a commit sha and the graphs grow deploy markers. A new issue then knows which release introduced it, and which commits touched the line that threw.
- Suspects, named
- The commits that last touched the failing frame, with their authors, on the issue itself.
- Resolve in a version
- Mark an issue fixed in the next release; Artisan closes it when that release ships and reopens it if it returns.
- Regressions are their own alert
- Something you already decided mattered coming back is the highest-signal page there is.
Deploys
checkout-api · last 9 days
- 4.17.3
- 4.18.0
- 4.18.1
- 4.18.2
New in 4.18.1 · PaymentTimeoutException
612 events · 312 users · first seen 11:42 AM PT
Suspect commits
- a41f9c2 · Charge: raise gateway timeout to 8s · Dana Reyes
- 7b02e11 · Billing: retry on 504 · Dana Reyes
Resolved automatically when 4.18.2 shipped. Reopens if it returns.
The rest of it, in one list
The small things that decide whether a tool gets used on a bad afternoon. None of them is a headline; all of them are in every plan.
- Breadcrumbs
- The clicks, requests and log lines from the thirty seconds before the throw, in order, on the issue.
- Scrubbing in the SDK
- Card numbers, auth headers and any field you name are removed before the event leaves your server.
- Source maps
- Upload them with the release and a minified frame reads like the file you wrote.
- Spend caps
- Set a ceiling per project. Artisan stops accepting events instead of sending you a surprise.
- Issue comments
- Discuss a null on the frame where it happened, not in a thread nobody finds in March.
- Merge and split
- Two buttons for the times grouping got it wrong, both reversible, both in the audit log.
- Morning digest
- One message on your time zone with everything that did not earn a page overnight.
- Data export
- Every event you have sent, as newline-delimited JSON, from the API or a scheduled drop to your bucket.
- Self-serve deletion
- Delete a user’s events by id, across every project, and get a receipt you can forward.
- Status on your page
- A JSON endpoint of our ingest health, so your own status page can say something true about us.
Getting started
One package, one DSN, no agent to run
Artisan is a library, not a sidecar. There is nothing to deploy beside your app, nothing to keep patched, and nothing that holds a request open waiting for us.
- Events send on a background thread; a timeout on our side never becomes one on yours.
- Fifty-eight SDKs, all written and maintained here, all on the same release train.
- Uninstall is deleting the package — your app keeps serving exactly as it did.
bash
checkout-api · 4 min 12 s
- npm install @artisan/sdk
- added 1 package in 2s
- npx artisan init --dsn $ARTISAN_DSN
- wired into app/bootstrap.js
- release 4.18.2 registered · a41f9c2
- git push origin main
- first event received 4.2 s after boot
- ART-0001 · PaymentTimeoutException · 1 event
See it against your own worst afternoon.
Install the SDK, deploy, and watch the first exception arrive grouped, traced and assigned. Free for 5,000 events a month.